<?php
namespace Versal\AdminBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\HttpFoundation\Response;
use Versal\AdminBundle\Common\Util\ObjectSerializer;
use Versal\AdminBundle\Common\Util\Constantes;
use Versal\SecurityBundle\Entity\Usuario as Usuario;
use Versal\AdminBundle\Form\CrearUsuarioForm;


class MantUsuarioController extends Controller {   
    
    public function indexAction(){
       
       $user = $this->getUser();
       $perfil = $user->getPerfilByApp(Constantes::ID_APP_ADMIN);       
     
       if ($perfil == null || $perfil->getPerfil() != 'ROLE_ADMIN'  ) {
           throw new AccessDeniedException();
       }
        
       //$usuariosJson = $this->getUsuarioAction($username);
        
       return $this->render('VersalAdminBundle:MantUsuario:mantenedorUsuario.html.php', 
               array(
                   //'usuariosJson'=>$usuariosJson,
                   'id_app' => Constantes::ID_APP_ADMIN                  
               ));      
    }
    
    /**
     * @return Json Usuario
     * 
     */
    public function getUsuarioAction($username = ''){
        
       $serializer = new ObjectSerializer;             
       $mantUsuarioSrv = $this->get('admin_mantenedor_usuario_srv');
       $usuariosJson = json_encode(array());
        
       if($username == ''){
          $usuarios = $mantUsuarioSrv->listar();           
       }else {
           $usuario = new Usuario();
           $usuario->setNombre($username);
           $usuario->setUsername($username);
           $usuarios = $mantUsuarioSrv->buscar($usuario, "");
       }
       
       if($usuarios){
             $usuariosJson = $serializer->serializeJson($usuarios);
       }
       
       
       $response = new Response();
       $response->setContent($usuariosJson);
       $response->headers->set('Content-Type', 'application/json');
       //return $response->send();
       return $response;
                
    }
    /*
    public function crearAction(){
       return $this->render('VersalAdminBundle:MantUsuario:crearUsuarioForm.html.php', 
               array(
                   //'usuariosJson'=>$usuariosJson,
                   'id_app' => Constantes::ID_APP_ADMIN                  
               )); 
    }*/
    
    public function crearAction(Request $request){
        $message = 'invalido';    
        $commonDao = $this->get('admin_common_dao');
        $collRegiones = $commonDao->getRegiones();
        //if(count($arrRegiones) > 0)
        $form = $this->createForm(new CrearUsuarioForm($collRegiones));
          // crea una task y le asigna algunos datos ficticios para este ejemplo       
 
       /* $form = $this->createFormBuilder($task)
            ->add('task', 'text')
            ->add('dueDate', 'date')
            ->add('save', 'submit')
            ->getForm();*/
        $form->handleRequest($request);
        if($form->isValid()){
            $message = 'valido';
        }
 
        return $this->render('VersalAdminBundle:MantUsuario:crearUsuario.html.php', array(
            'form' => $form->createView(),
            'message' => $message,
            'regiones' => $collRegiones
        ));
    }
    
    
       
}
